feat(provider): persist /provider add API key into env variables#319
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
|
/review |
|
/code 解决review中提到的问题(特别是apikey明文渲染的问题!),并且补充这些文件(internal/tui/core/app/view.go ;internal/config/envfile.go;internal/config/provider_loader.go;internal/cli/root.go ;internal/config/env_platform.go)测试覆盖率至百分之八十以上 |
|
已按要求修复 review 问题并补齐测试,变更已提交并推送到当前 PR 分支 已完成
覆盖率结果(目标文件)
新增/更新测试
验证
|
- mask provider add API key in TUI view - validate custom provider names to block path traversal - rollback persisted/process/user env and provider files on add failure - add tests to raise requested file coverage above 80% Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: creatang <165447160+creatang@users.noreply.github.com>
…er-fix fix(provider): mask api key render and harden provider add rollback
|
/code 请补全[internal/tui/core/app/update.go]文件的测试覆盖率至百分之八十以上 |
|
已完成: 结果
本次新增覆盖重点
未做项
|
Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: creatang <165447160+creatang@users.noreply.github.com>
…er-fix test(tui): raise update.go coverage above 80%
|
/code 请帮我把文件测试覆盖率提升到百分之九十五以上 |
完成情况已按你的要求补测试并推送到当前 PR 分支: 覆盖率结果(文件级)
本次新增覆盖重点
说明
|
Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: creatang <165447160+creatang@users.noreply.github.com>
…er-fix test: increase coverage for config and tui app
|
/review |
|
/code 解决review中提到的高风险回滚数据丢失和一次输入处理的 UTF-8 兼容性问题,并提升测试覆盖率至百分之九十五以上 |
已完成
验证
提交
|
Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: creatang <165447160+creatang@users.noreply.github.com>
|
/review |
There was a problem hiding this comment.
发现 1 个需要修复的问题:/provider add 失败回滚后,磁盘和环境变量已恢复,但内存中的配置快照未同步回滚,可能导致本进程仍短暂保留已回滚的 provider 视图。
另外有 2 个文档一致性提醒(非阻塞):
docs/guides/configuration.md与docs/config-management-detail-design.md仍写明“不自动加载 .env”,但本 PR 已在启动预加载调用LoadPersistedEnv。README.md的常用命令列表建议补充/provider add。
|
|
||
| selection, err := providerSvc.SelectProvider(ctx, request.Name) | ||
| if err != nil { | ||
| err = rollback(processEnvApplied, userEnvPersisted, envPersisted, providerSaved, err) |
There was a problem hiding this comment.
这里在 SelectProvider 失败后执行了回滚,但没有再执行一次 configManager.Reload(...)。结果是:文件系统和环境变量已恢复,内存配置快照却可能仍保留新增 provider,形成短暂不一致。建议在 rollback(...) 成功后补一次 Reload(并在失败时合并错误),确保进程内状态与回滚后落盘状态一致。
Summary
Closes #311